# 九九乘法表的实现
'''
1. 把乘法表左上角考虑成（1，1）坐标点，每个乘法表表达式等于row*col
2. 输出是一行一行输出的，所有每一行输出后需要换行
3. 每一行的行号，就是列从1到行号的循环
4. 为格式化输出，使用占位
'''
for row1 in range(1,10):
    for col1 in range(1,row1+1):
        print('{}*{}={:<4}'.format(row1,col1,row1*col1),end='')
    print('')

print('')
print('='*80)

for row2 in range(9,0,-1):
    for col2 in range(1,row2+1):
        print('{}*{}={:<4}'.format(row2,col2,row2*col2),end='')
    print('')

print('')
print('='*80)

for row3 in range(9,0,-1): #打印行，使用了倒序9.8.7.6.....
    for block3 in range(0,row3-1):
        print(end="       ")
#上面的这个循环for打印出空格，控制乘法表格式。
# row3循环到第几行打印第row3-1个空格。
    for col3 in range(9,row3-1,-1): #打印列
        print("{0}*{1}={2:2d}".format(row3,col3,row3*col3),end=" ")
# 这里是用format函数进行格式化输出控制，{2:2d}是给{2}这个位置两倍的空间，对齐乘法表
# 同时end是print函数内置方法，设置end=""print就不会进行换行操作
    print(" ")


print('')
print('='*80)

#右上角九九乘法表
for row2 in range(9,0,-1): #打印行，使用了倒序9.8.7.6.....
    for block2 in range(9,row2,-1):
        print(end="       ")
#上面的这个循环for打印出空格，控制乘法表格式。
# 空格根据9-row2次打印对应空格数
    for col2 in range(row2,0,-1): #打印列
        print("{0}*{1}={2:2d}".format(row2,col2,row2*col2),end=" ")
# 这里是用format函数进行格式化输出控制，{2:2d}是给{2}这个位置两倍的空间，对齐乘法表
# 同时end是print函数内置方法，设置end=""print就不会进行换行操作
    print(" ")
